home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -in_the_mag- / basics / gfa / gfa_menus.lha / GFA_Menus / OS-MENU.GFA (.txt) < prev    next >
GFA-BASIC Atari  |  1998-08-22  |  2KB  |  69 lines

  1. WORD{0,0,0,400,100,512,4108! *** Use "4108 or &H200000" for WB 3.0+ NewLook
  2. DIM m$(20)
  3. m$(0)="Project"
  4. m$(1)="About       "
  5. m$(2)="-~~~~~~~~~~~~"
  6. m$(3)="Quit...     "
  7. m$(4)=""
  8. m$(5)="Test"
  9. m$(6)="Sub Items »"
  10. m$(7)="!1"
  11. m$(8)="!2"
  12. m$(9)=""
  13. m$(10)=""
  14. MENU m$()
  15. MENU KEY1,ASC("A")
  16. MENU KEY3,ASC("Q")
  17. REPEAT
  18.   msg#=LPEEK(ADDRIN0)+86))
  19.   msg#=LPEEK(ADDRIN0)+86))
  20.   WHILE (msg#)
  21.     class%=LPEEK(msg#+20)
  22.     code%=DPEEK(msg#+24)
  23.     ~msg#)
  24.     IF HEX$(class%)="200" ! *** CLOSEWINDOW
  25.       CLOSEW 0
  26.       EDIT
  27.     ENDIF
  28.     IF HEX$(class%)="100" ! *** MENUPICK
  29.       i$=RIGHT$(STRING$(16,"0")+BIN$(code%),16)
  30.       s%=VAL("%"+MID$(i$,1,5)) ! *** sub item
  31.       i%=VAL("%"+MID$(i$,6,6)) ! *** menu item
  32.       m%=VAL("%"+MID$(i$,12,5)) ! menu
  33.       SELECT m%
  34.       CASE 0 ! *** First menu (# 0)
  35.         SELECT i%
  36.         CASE 0 ! *** About
  37.           ALERT 0,"System friendly|event handling!",1,"Continue",nk%
  38.         CASE 1 ! *** Separator
  39.           '
  40.         CASE 2 ! *** Quit...
  41.           ALERT 0,"Quit demo?",0,"Yes|No",nk%
  42.           IF nk%=1
  43.             CLOSEW 0
  44.             EDIT
  45.           ENDIF
  46.         DEFAULT
  47.         ENDSELECT
  48.       CASE 1 ! *** Second menu (# 1)
  49.         SELECT i%
  50.         CASE 0 ! *** Sub Item...
  51.           SELECT s%
  52.           CASE 0
  53.             CLS
  54.             PRINT "Sub item #1"
  55.           CASE 1
  56.             CLS
  57.             PRINT "Sub item #2"
  58.           DEFAULT
  59.           ENDSELECT
  60.         DEFAULT
  61.         ENDSELECT
  62.       DEFAULT
  63.       ENDSELECT
  64.     ENDIF
  65.     msg#=LPEEK(ADDRIN0)+86))
  66.   WEND
  67. UNTIL FALSE
  68. EDIT
  69.